import sys
from PyQt5.QtWidgets import QMainWindow, QPushButton, QApplication, QHBoxLayout, QWidget
from PyQt5.QtGui import QIcon

class quitClass(QMainWindow) :
    def __init__(self) :
        super(quitClass, self).__init__()
        self.ui_set()

    def ui_set(self) :
        self.setWindowTitle('退出应用程序测试')
        # self.resize(400, 300) # 或者通过下面的方式进行大小设置
        self.setGeometry(300, 300, 400, 300)
        self.setWindowIcon(QIcon(r'.\reference\controls\images\Basilisk.ico'))
        # 这里就设置了一个图标
        self.btn1 = QPushButton('退出程序')
        self.btn1.clicked.connect(self.btn_event)
        layout1 = QHBoxLayout() # 获取水平布局
        layout1.addWidget(self.btn1) # 给布局增加一个组件
        mainWidget = QWidget() # 创建一个窗口对象
        mainWidget.setLayout(layout1) # 设置窗口的布局
        self.setCentralWidget(mainWidget) # 设置中心窗口

    def btn_event(self) :
        self.event = self.sender()
        print(self.event.text() + '按钮被按下')
        app = QApplication.instance() # 创建一个application实例
        app.quit()

if __name__ == '__main__' :
    app = QApplication(sys.argv)
    tmp = quitClass()
    tmp.show()
    sys.exit(app.exec_())